import http from "../../utils/request";

Page({
  // 如果数据不属于状态数据，那么没必要放置在 data 选项下
  pageNum: 1,
  pageSize: 10,

  data: {
    type: "1", // 电影类型
    films: [],
    total: 1, // 数据总条数
    loading: false, // 是否请求中
    refreshing: true, // 是否正在下拉刷新
    finished: false, // 是否全部加载完成
  },

  onLoad() {
    //   默认调用一次
    this.getFilmList();
    // 默认启用一次下拉刷新
    // wx.startPullDownRefresh();
  },

  /**
   * 下拉刷新
   */
  customPullDownRefresh() {
    // 1. 页码修改为 1
    this.pageNum = 1;
    // 2. 重新获取数据
    this.getFilmList();
  },

  /**
   * 上拉触底
   */
  customReachBottom() {
    // 0. 是否还有更多
    const { films, total, finished, loading } = this.data;
    // if (films.length >= total) return;
    if (finished || loading) return;

    // 1. 页码 + 1
    this.pageNum++;
    // 2. 重新获取接口
    this.getFilmList();
  },

  /**
   * 转发分享
   */
  onShareAppMessage(option) {
    console.log("=== 分享", option);
    // 1. 判断当前是 button 触发 还是 菜单 触发
    if (option.from === "button") {
      // 1. 获取 dataset 中的 id
      const { id, name, poster } = option.target.dataset;
      // 2. 返回分享配置
      return {
        title: name,
        imageUrl: poster,
        path: "/pages/film-detail/index?id=" + id,
      };
    }
  },

  /**
   * 页签切换
   */
  onChange(event) {
    console.log("=== onChange", event);
    // 修改 data 数据
    this.setData({
      type: event.detail.name,
    });
    // 页面重置为 1
    this.pageNum = 1;
    // 重新调用接口
    this.getFilmList();
  },

  /**
   * 获取影片列表数据
   */
  getFilmList() {
    this.setData({ loading: true });
    wx.showLoading({ title: "加载中" });
    http("mall.film-ticket.film.list", {
      cityId: 440300,
      pageNum: this.pageNum,
      pageSize: this.pageSize,
      type: this.data.type,
      k: 4076868,
    })
      .then((result) => {
        const newFilms =
          this.pageNum === 1
            ? result.films
            : [...this.data.films, ...result.films];
        // 赋值
        this.setData({
          films: newFilms,
          total: result.total,
          finished: newFilms.length >= result.total,
          refreshing: false,
        });

        // 停止下拉刷新
        // wx.stopPullDownRefresh();
      })
      .catch(() => {
        // 处理 pageNum--
        this.pageNum--;
      })
      .finally(() => {
        this.setData({ loading: false });
        wx.hideLoading();
      });
  },

  /**
   * 跳转详情
   */
  jump(event) {
    console.log("=== jump", event.detail);
    wx.navigateTo({
      url: "/pages/film-detail/index?id=" + event.detail.filmId,
    });
  },

  fn1() {
    console.log("=== fn1");
  },
});
